home *** CD-ROM | disk | FTP | other *** search
- #include "Prefs.h"
- #include "StandardEvent.h"
- #include "FontMancer.h"
- #include "FontDisplay.h"
-
- extern Str255 gSamplePhrase;
- extern Boolean gInBackground;
- extern WindowPtr gMainWindow;
-
- OSErr LoadPrefs(struct prefStuff *Prefs)
- {
- long bytesRead;
- short error,fRefNum;
- FSSpec fileSpec;
-
- error = FindPrefs(&fileSpec,Prefs);
- if (error)
- return(error);
- FSpOpenDF(&fileSpec,fsCurPerm,&fRefNum);
- bytesRead = sizeof(struct prefStuff);
- FSRead(fRefNum,&bytesRead,Prefs);
- FSClose(fRefNum);
- if (bytesRead != sizeof(struct prefStuff))
- return(-1);
- return(0);
- }
-
- void SavePrefs(struct prefStuff *Prefs)
- {
- long bytesWritten;
- short error,fRefNum;
- FSSpec fileSpec;
-
- error = FindPrefs(&fileSpec, Prefs);
- if (error) return;
- error = FSpOpenDF(&fileSpec,fsWrPerm,&fRefNum);
- if (error) return;
- bytesWritten = sizeof(struct prefStuff);
- FSWrite(fRefNum,&bytesWritten,Prefs);
- FSClose(fRefNum);
- }
-
- OSErr FindPrefs(FSSpec *fileSpec, struct prefStuff *Prefs)
- {
- long foundDirID,bytesWritten;
- short error,foundVRefNum,fRefNum;
- Str255 fileName = "\pFontMancer Prefs";
- Str255 samplePhrase = "\pVisualise whirled peas";
-
- error = FindFolder(kOnSystemDisk,kPreferencesFolderType,kDontCreateFolder,&foundVRefNum,&foundDirID);
- if (error)
- return(error);
- error = FSMakeFSSpec(foundVRefNum,foundDirID,fileName,fileSpec);
- if (error) {
- error = FSpCreate(fileSpec,'NU04','PREF',smSystemScript);
- if (error)
- return(error);
- FSpOpenDF(fileSpec,fsWrPerm,&fRefNum);
- BlockMove(samplePhrase,Prefs->samplePhrase,23);
- SetPt(&(Prefs->windowPosition),10,50);
- bytesWritten = sizeof(struct prefStuff);
- FSWrite(fRefNum,&bytesWritten,Prefs);
- FSClose(fRefNum);
- if (bytesWritten != sizeof(struct prefStuff))
- return(-1);
- }
- return(0);
- }
-
- void SetSamplePhrase()
- {
- DialogPtr SamplePhraseDlg;
- Handle hEditText;
- Str255 newSamplePhrase = "\p";
- short itemHit = -1;
- FMStuff *FMStore;
-
- gInBackground = TRUE;
- DoActivateMainWindow();
- SamplePhraseDlg = GetNewDialog(rSetSamplePhrase,0,(WindowPtr) -1L);
- SetDialogDefaultItem(SamplePhraseDlg,ok);
- SetDialogCancelItem(SamplePhraseDlg,cancel);
- SetDialogTracksCursor(SamplePhraseDlg,1);
- GetDItemHandle(iEditTextItem, SamplePhraseDlg, &hEditText);
- SetIText(hEditText,gSamplePhrase);
- SelIText(SamplePhraseDlg,iEditTextItem,0,32767);
- while (itemHit != cancel && itemHit !=ok) {
- ModalDialog(0,&itemHit);
- if (itemHit == ok) {
- GetIText(hEditText,newSamplePhrase);
- BlockMove(newSamplePhrase,gSamplePhrase,newSamplePhrase[0] + 1);
- }
- }
- DisposeDialog(SamplePhraseDlg);
- gInBackground = FALSE;
- DoActivateMainWindow();
- FMStore = (FMStuff *) GetWRefCon(gMainWindow);
- UpdateSampleRect(FMStore);
- }
-
- void GetDItemHandle(short iDialogItem, DialogPtr theDlg, Handle *itemHandle)
- {
- short iType;
- Rect iRect;
-
- GetDItem(theDlg,iDialogItem,&iType,itemHandle,&iRect);
-
- }